package com.jiuli_travel.attraction_service.model.entity;

import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 * 票种信息表
 * </p>
 *
 * @author jiuli
 * @since 2024-04-01
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("ticket_types")
public class TicketTypes implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 票种ID
     */
    @TableId(value = "ticket_type_id", type = IdType.AUTO)
    private Long ticketTypeId;

    /**
     * 票种名称（如“全价成人票”、“夜间票”等）
     */
    private String name;

    /**
     * 票种描述（包含适用人群、权益、使用规则等详细信息）
     */
    private String description;

    /**
     * 票种价格
     */
    private BigDecimal price;

    /**
     * 价格货币单位
     */
    private String currency;

    /**
     * 有效期类型（单日、多日、不限期）
     */
    private String validityPeriod;

    /**
     * 最大有效期天数（仅对多日票有意义）
     */
    private Integer maxValidityDays;

    /**
     * 服务附加项（如导览、餐饮、快速通道等，以JSON格式存储）
     */
    private String serviceAddons;

    /**
     * 参观时段（日间、夜间、特定日期）
     */
    private String timeSlot;

    /**
     * 特定日期票的详细信息（如适用日期范围、价格策略等，以JSON格式存储）
     */
    private String dateSpecificDetails;

    /**
     * 票种类型（普通票、特殊票、会员票）
     */
    private String ticketType;

    /**
     * 是否电子票
     */
    private Boolean isElectronic;

    /**
     * 是否实体票
     */
    private Boolean isPhysical;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    private LocalDateTime updateTime;


}
